#ifndef SRC_LTIO_H_
#define SRC_LTIO_H_

#include "src/ltbase.h"

typedef lt_I32 ltio_Rune;

/** 成功时返回无符号字节转型成Rune的结果，即是非负的。特别是允许读取字符0。

错误时返回错误ltio_Error的相反数，特别是-ltio_End。
*/
typedef ltio_Rune (*ltio_IReadChar)(void* ctx);

ltio_Rune ltio_FilePtrReadChar(void* ctx);

/** 字符流。*/
typedef struct {
    char const* data;
    lt_USize len;
    lt_USize now;
} ltio_CharStream;

ltio_Rune ltio_CharStreamReadChar(void* ctx);

#endif // SRC_LTIO_H_
